#include"Shm.hpp"
#include <sys/types.h>
#include <sys/shm.h>
#include"namedPipe.hpp"

int main()
{
    // key_t key=GetCommKey(gpathname,gproj_id);
    // std::cout<<"key:"<<ToHex(key)<<std::endl;
    
    //1.创建共享内存
    Shm shm(gpathname,gproj_id,gUser);
    shm.Zero();
    char *shmaddr=(char*)shm.Addr();
    sleep(3);

    //2.打开管道
    NamePiped fifo(comm_path,User);
    fifo.OpenForWrite();

  //当成string
     char ch='A';
     while(ch<='Z')
     {
        shmaddr[ch-'A']=ch;
       

        std::string temp="wakeup";
        std::cout << "add " << ch << " into Shm, " << "wakeup reader" << std::endl;
        fifo.WriteNamedPipe(temp);
        sleep(2);
        ch++;
     }
    
    // sleep(5);
    // char *addr=(char*)shm.AttachShm();

    // sleep(5);

    // shm.DetachShm(addr);
     //sleep(5);
    return 0;
}

// #include "Shm.hpp"
// #include "namedPipe.hpp"

// int main()
// {
//     // 1. 创建共享内存

//     Shm shm(gpathname, gproj_id, gUser);
//     shm.Zero();
//     char *shmaddr = (char *)shm.Addr();
//     sleep(3);

//     // 2. 打开管道
//     NamePiped fifo(comm_path, User);
//     fifo.OpenForWrite();

//     // 当成string
//     char ch = 'A';
//     while (ch <= 'Z')
//     {
//         shmaddr[ch - 'A'] = ch;

//         std::string temp = "wakeup";
//         std::cout << "add " << ch << " into Shm, " << "wakeup reader" << std::endl;
//         fifo.WriteNamedPipe(temp);
//         sleep(2);
//         ch++;
//     }
//     return 0;
// }